<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>

</html>
<script>
    // 1.整数数组
    // var arr = [1, 2, 3, 42, 58];

    // 2.字符串数组
    // var arr1 = ['hello', 'hi']

    // 3.二维数组:数组项的值还是数组。(for循环的嵌套实现)
    // 二维数组值的读写(获取和设置)
    // 读
    // var arr = ['apple', ['banana', 'pear'],
    //     ['peach']
    // ];
    // console.log(arr[0]); //apple
    // console.log(arr[1][0]); //banana
    // console.log(arr[1][1]); //pear
    // console.log(arr[2][0]); //peach

    // 写:设置二维数组必须告知数组的这一项值还是数组。
    // var arr = [];
    // arr[0] = 'zhangsan';
    // arr[1] = 'lisi';
    // arr[2][0] = 'wangwu'; //XXXXXX   这样的写法是错误的。
    // arr[2] = []; //必须提前告知数组项的值是数组。
    // arr[2][0] = 'wangwu';
    // arr[2][1] = '尼古拉斯赵四';
    // console.log(arr);

    // 通过循环按行顺序为一个5×5的二维数组arr赋1到25的自然数，然后输出该数组的左下半三角。试编程。
    // 思路：根据索引进行输出。
    // var arr = [[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15],[16,17,18,19,20],[21,22,23,24,25]];

    //封装函数将小于10的数字前面添加0
    function double(n) {
        // if (n < 10) { //如果数字小于10,前面补0
        //     return '0' + n;
        // } else {
        //     return n;
        // }
        return n < 10 ? '0' + n : n;
    }

    var num = 1;
    var arr = [];
    for (var i = 0; i <= 4; i++) { //一维数组的索引
        arr[i] = []; //必须提前告知数组项的值是数组。
        for (var j = 0; j <= 4; j++) { //二维数组的索引
            arr[i][j] = num++; //arr[0][0]=1  arr[0][1]=2  arr[0][2]=3
            if (i >= j) {
                document.write(double(arr[i][j]) + '&nbsp;&nbsp;&nbsp;'); //打印数据
            }

        }
        document.write('<br>'); //内层循环完成，打印一个换行
    }
    // console.log(arr);

    // 4.对象数组：数组项是对象。
    // 对象的属性一定是字符串，系统强制进行转换。
    // var obj = {
    //     a: 1,
    //     b: 2,
    //     c: 3
    // };
    // console.log(obj.a);
    // console.log(obj['a']);

    // var obj1 = {
    //     1: 2,
    //     3: 4
    // };
    // console.log(obj1[1]);
    // console.log(obj1['1']);

    // var arr = [{
    //     name: 'zhangsan',
    //     age: 100
    // }, {
    //     name: 'lisi',
    //     age: 25
    // }, {
    //     name: 'wangwu',
    //     age: 250
    // }];

    // console.log(arr[0]); //结果是对象，按照对象的取值方式操作{name: "zhangsan", age: 100}
    // console.log(arr[0].name); //zhangsan
    // console.log(arr[0]['name']); //zhangsan
    // console.log(arr[2].name);//wangwu

    // var data = {
    //     "result": [
    //         ["衣服2020新款女", "3930545.041399621"],
    //         ["衣服男", "2702701.9521625596"],
    //         ["衣服男秋季", "2493360.810121415"],
    //         ["衣服女秋冬", "1763037.5468168647"],
    //         ["衣服男冬季", "957351.1110777482"],
    //         ["衣服秋季款女", "2468088.932709462"],
    //         ["衣服女2020新品", "2456832.8618547386"],
    //         ["张三衣服男潮流", "714802.0330526972"],
    //         ["衣服架", "825355.1826229428"],
    //         ["衣服收纳", "251294.71925471246"]
    //     ]
    // };
    // console.log(data.result[7][0]);


    //5.sort方法排序数组，利用对象下面的某个值排序整个对象。
    var arr = [{
        name: 'zhangsan',
        age: 100
    }, {
        name: 'lisi',
        age: 25
    }, {
        name: 'wangwu',
        age: 250
    }];

    //按照年龄从小到大排序里面的三个对象。
    console.log(arr.sort(function(a, b) { //a,b表示任意的两个数组项,表示对象
        return a.age - b.age;
    }));


    var arr1 = [100, 25, 250];
    console.log(arr1.sort(function(a, b) {
        return a - b;
    }));
</script>